AGB FAQ, Graphics

FAQ MENU

## Graphics

[Q001] I can display OBJs well in BG modes 0-2, but I can't display them in BG modes 3-5.
[Q002] Can a semitransparent OBJ be layered on an OBJ?
[Q003] I don't understand the causal relationship between the parameters delivered in the ObjAffineSet() function and the resulting scaling.
[Q004] Why does the OBJ's display position shift when the OBJ double-size flag is raised?
[Q005] Can the timer be used to realize interrupts in agreement with the H counter?
[Q006] Is it possible to use both the Object Invert Display function and the Rotate Display function at the same time?
[Q007] If there are not enough drawing cycles for an OBJ that needs a certain number of cycles for one remaining line, how is that displayed?
[Q008] Can the entire screen fade when a semi-transparent OBJ is displayed?
[Q009] Regarding expressions and dramatic effects, are there any rules about the use of blinking lights?

### [Q001]

I can display OBJs well in BG modes 0-2, but I can't display them in BG modes 3-5.

### [A001]

The OBJ character base address is fixed to the VRAM base address. In BG modes 3-5, OBJ character data RAM is halved to 16 Kbytes and character names 0-511 become nullified. Please take note of this. In BG modes 3-5, character names from the 512th onward are available.

[TOP]

### [Q002]

Can a semitransparent OBJ be layered on an OBJ?

### [A002]

The hardware does not support OBJ blending.

[TOP]

### [Q003]

I don't understand the causal relationship between the parameters delivered in the ObjAffineSet() function and the resulting scaling.

### [A003]

RatioX/RatioY of the ObjAffineSrcData structure agree with the configuration of the OAM affine parameter. Also, the ObjAffineDestData structure is arranged in order according to the OAM affine parameter.
In other words, when the ObjAffineSrcData structure's Theta is 0, then the ObjAffineDestData structure becomes {RatioX, 0, 0, RatioY}, which is the same as when RatioX/RatioY are written directly to OAM.

[TOP]

### [Q004]

Why does the OBJ's display position shift when the OBJ double-size flag is raised?

### [A004]

For an OBJ that is Y dots tall by X dots wide, when the double-size flag is raised, the center position of the OBJ will shift by Y/2 dots in the vertical direction and X/2 dots in the horizontal direction.
This is the specification, so please take note of it when assembling your programs.

[TOP]

### [Q005]

Can the timer be used to generate interrupts in sync with the H counter?

### [A005]

The actual timing of an interrupt once it has been generated can vary by up to 10 clocks, depending on which instruction (or DMA) was executed at the time the interrupt was generated. If you consider that it is 4 clocks per pixel, you can see it would be difficult to execute the timer exactly in sync with the H counter. Furthermore, since accessing registers during this display can cause faulty operations, we do not recommend this strategy.

[TOP]

### [Q006]

Is it possible to use both the Object Invert Display function and the Rotate Display function at the same time?

### [A006]

BEFORE:

When the OBJ Attribute 0 rotation-scaling flag is ON, the OBJ attribute 1 vertical-horizontal inversion flag takes on the value of the upper bit of the rotation-scaling parameter selection, so the settings for these flags become nullified. To rotate an inverted Object, register a negative rotation-scaling parameter in OAM and specify this parameter with the OBJ attribute 1 parameter selection.

AFTER:

When the OBJ Attribute 0 rotation/scaling flag is ON, the OBJ Attribute 1 vertical/horizontal flip flags are used for the upper two bits of the rotation/scaling parameter selection field. So, the flip flags cannot be used when rotating/scaling. Instead, flip a rotated OBJ by using negative rotation/scaling parameters in OAM, and specify these parameters in the OBJ Attribute 1 rotation/scaling parameter selection field.

[TOP]

### [Q007]

How is an OBJ displayed when there are not enough drawing cycles on the remaining line to draw that OBJ?

### [A007]

Only the pixels of the OBJ which can be drawn on the remaining line will be displayed.

[TOP]

### [Q008]

Can the entire screen fade when a semi-transparent object is displayed?

### [A008]

To fade the screen when a semi-transparent object is on display, execute only the alpha-blend in the region of the semi-transparent object.

[TOP]

### [Q009]

Are there any rules about the use of blinking lights or flashing screens?

### [A009]

Please note the following points of caution and consider appropriate responses.
Excessive Flicker (Recommended)

Description

It is recommended that developers avoid unnecessary flickering or flashing on the screen.

Reason

Visually-induced seizures, seizures precipitated by flashing lights and patterns, may occur in some individuals who have a pre-existing susceptibility called photo- or pattern sensitivity. While photo- and pattern sensitivity in the general population are extremely rare, persons with either of these conditions may experience seizures as a result of watching some kinds of television pictures or playing certain video games. Therefore, we suggest avoiding excess flickering or flashing.

[TOP]

D.C.N. AGB-06-0027-001A1 (2/21/01)
© 2001 Nintendo of America Inc.